From 1424dd9786999a50f7351805a418bfb8f3bdd221 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 3 Apr 2020 22:41:15 -0400 Subject: [PATCH] Add an api to parse shortcut actions This is so we can test this code. While doing it I also fixed the missing else that was caused it not to work. --- gtk/gtkshortcutaction.c | 24 +++++++++++++++++++++--- gtk/gtkshortcutaction.h | 3 +++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gtk/gtkshortcutaction.c b/gtk/gtkshortcutaction.c index 176fe5fa5a..c1357d04e8 100644 --- a/gtk/gtkshortcutaction.c +++ b/gtk/gtkshortcutaction.c @@ -44,6 +44,10 @@ * - #GtkNamedAction: a shortcut action that calls gtk_widget_activate_action() * - #GtkGActionAction: a shortcut action that activates a given #GAction * - #GtkNothingAction: a shortcut action that does nothing +* +* # GtkShortcutAction as GtkBuildable +* +* GtkShortcut */ #include "config.h" @@ -180,9 +184,7 @@ string_is_function (const char *string, } GtkShortcutAction * -gtk_shortcut_action_parse_builder (GtkBuilder *builder, - const char *string, - GError **error) +gtk_shortcut_action_parse_string (const char *string) { GtkShortcutAction *result; char *arg; @@ -204,6 +206,22 @@ gtk_shortcut_action_parse_builder (GtkBuilder *builder, result = gtk_signal_action_new (arg); g_free (arg); } + else + return NULL; + + return result; +} + +GtkShortcutAction * +gtk_shortcut_action_parse_builder (GtkBuilder *builder, + const char *string, + GError **error) +{ + GtkShortcutAction *result; + + result = gtk_shortcut_action_parse_string (string); + + if (!result) { g_set_error (error, GTK_BUILDER_ERROR, GTK_BUILDER_ERROR_INVALID_VALUE, diff --git a/gtk/gtkshortcutaction.h b/gtk/gtkshortcutaction.h index d599344922..2fa2760324 100644 --- a/gtk/gtkshortcutaction.h +++ b/gtk/gtkshortcutaction.h @@ -60,6 +60,9 @@ GDK_DECLARE_INTERNAL_TYPE (GtkShortcutAction, gtk_shortcut_action, GTK, SHORTCUT GDK_AVAILABLE_IN_ALL char * gtk_shortcut_action_to_string (GtkShortcutAction *self); +GDK_AVAILABLE_IN_ALL +GtkShortcutAction * gtk_shortcut_action_parse_string (const char * string); + GDK_AVAILABLE_IN_ALL void gtk_shortcut_action_print (GtkShortcutAction *self, GString *string); -- 2.30.2